home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / cblas / test_rotmg.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-04-18  |  6.4 KB  |  168 lines

  1. #include <gsl/gsl_test.h>
  2. #include <gsl/gsl_ieee_utils.h>
  3. #include <gsl/gsl_math.h>
  4. #include <gsl/gsl_cblas.h>
  5.  
  6. #include "tests.h"
  7.  
  8. void
  9. test_rotmg (void) {
  10. const double flteps = 1e-4, dbleps = 1e-6;
  11.   {
  12.    float d1 = -1630.28519312f;
  13.    float d2 = 44320.1964703f;
  14.    float b1 = 1274.7681352f;
  15.    float b2 = 0.983006912864f;
  16.    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
  17.    float d1_expected = 0.0f;
  18.    float d2_expected = 0.0f;
  19.    float b1_expected = 0.0f;
  20.    float h0_expected = -1.0f;
  21.    float h11_expected = 0.0f;
  22.    float h21_expected = 0.0f;
  23.    float h12_expected = 0.0f;
  24.    float h22_expected = 0.0f;
  25.    cblas_srotmg(&d1, &d2, &b1, b2, h);
  26.    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 606)");
  27.    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 607)");
  28.    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 608)");
  29.    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 609)");
  30.    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 610)");
  31.    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 611)");
  32.    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 612)");
  33.    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 613)");
  34.   };
  35.  
  36.  
  37.   {
  38.    double d1 = 0.0890831089656;
  39.    double d2 = 24998.3892082;
  40.    double b1 = 34657.8864443;
  41.    double b2 = 1.27708980357;
  42.    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
  43.    double d1_expected = 0.0890491788526;
  44.    double d2_expected = 24988.8677829;
  45.    double b1_expected = 34671.0920237;
  46.    double h0_expected = 0;
  47.    double h11_expected = -999.1;
  48.    double h21_expected = -3.6848461767e-05;
  49.    double h12_expected = 10.34036867;
  50.    double h22_expected = -999.4;
  51.    cblas_drotmg(&d1, &d2, &b1, b2, h);
  52.    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 614)");
  53.    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 615)");
  54.    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 616)");
  55.    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 617)");
  56.    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 618)");
  57.    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 619)");
  58.    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 620)");
  59.    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 621)");
  60.   };
  61.  
  62.  
  63.   {
  64.    float d1 = 0.00100326116366f;
  65.    float d2 = -1.20359225232f;
  66.    float b1 = -7.45489498808f;
  67.    float b2 = 0.159616854019f;
  68.    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
  69.    float d1_expected = 0.00222932574734f;
  70.    float d2_expected = -2.67447728926f;
  71.    float b1_expected = -3.35491869218f;
  72.    float h0_expected = 0.0f;
  73.    float h11_expected = -999.1f;
  74.    float h21_expected = 0.0214110130692f;
  75.    float h12_expected = 25.6863620142f;
  76.    float h22_expected = -999.4f;
  77.    cblas_srotmg(&d1, &d2, &b1, b2, h);
  78.    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 622)");
  79.    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 623)");
  80.    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 624)");
  81.    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 625)");
  82.    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 626)");
  83.    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 627)");
  84.    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 628)");
  85.    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 629)");
  86.   };
  87.  
  88.  
  89.   {
  90.    double d1 = -49.1978123005;
  91.    double d2 = 0.228703451277;
  92.    double b1 = 1.8901039144;
  93.    double b2 = 7081.47754386;
  94.    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
  95.    double d1_expected = 0;
  96.    double d2_expected = 0;
  97.    double b1_expected = 0;
  98.    double h0_expected = -1;
  99.    double h11_expected = 0;
  100.    double h21_expected = 0;
  101.    double h12_expected = 0;
  102.    double h22_expected = 0;
  103.    cblas_drotmg(&d1, &d2, &b1, b2, h);
  104.    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 630)");
  105.    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 631)");
  106.    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 632)");
  107.    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 633)");
  108.    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 634)");
  109.    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 635)");
  110.    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 636)");
  111.    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 637)");
  112.   };
  113.  
  114.  
  115.   {
  116.    float d1 = 0.00760694276009f;
  117.    float d2 = -1.07649167228f;
  118.    float b1 = -22584.0076391f;
  119.    float b2 = -0.00305597817159f;
  120.    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
  121.    float d1_expected = 0.00760694276011f;
  122.    float d2_expected = -1.07649167228f;
  123.    float b1_expected = -22584.007639f;
  124.    float h0_expected = 0.0f;
  125.    float h11_expected = -999.1f;
  126.    float h21_expected = -1.35316026298e-07f;
  127.    float h12_expected = -1.91491615001e-05f;
  128.    float h22_expected = -999.4f;
  129.    cblas_srotmg(&d1, &d2, &b1, b2, h);
  130.    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 638)");
  131.    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 639)");
  132.    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 640)");
  133.    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 641)");
  134.    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 642)");
  135.    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 643)");
  136.    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 644)");
  137.    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 645)");
  138.   };
  139.  
  140.  
  141.   {
  142.    double d1 = 0.000283076346391;
  143.    double d2 = 20.1907649901;
  144.    double b1 = -0.274927034914;
  145.    double b2 = 18.6645358259;
  146.    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
  147.    double d1_expected = 20.1907649287;
  148.    double d2_expected = 0.00028307634553;
  149.    double b1_expected = 18.6645358827;
  150.    double h0_expected = 1;
  151.    double h11_expected = -2.06514743478e-07;
  152.    double h21_expected = -999.2;
  153.    double h12_expected = -999.3;
  154.    double h22_expected = -0.0147299154652;
  155.    cblas_drotmg(&d1, &d2, &b1, b2, h);
  156.    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 646)");
  157.    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 647)");
  158.    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 648)");
  159.    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 649)");
  160.    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 650)");
  161.    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 651)");
  162.    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 652)");
  163.    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 653)");
  164.   };
  165.  
  166.  
  167. }
  168.